engineering consultant tools engineers firmware requirements certified accountant hardware software design manufacturing firmware specification civil engineering firmware programming computer consultant construction engineer computer